/*************************初始化富文本编辑器**************************/
var ue = UE.getEditor('editor', {
    autoHeightEnabled: true,
    autoFloatEnabled: true,
    elementPathEnabled: false, // 隐藏元素路径
    initialFrameWidth: 1000,
    maximumWords: 10000,
    initialFrameHeight: 300,
    imageMaxSize: 1024 * 1024 * 5,// 上传图片的大小限制为5m
    imageCompressEnable: false,// 是否压缩图片
    videoMaxSize: 1024 * 1024 * 500,// 视频上传大小限制为500m
    videoAllowFiles: [".avi", ".mp4"],//视频格式
    toolbars: [
        [
            'anchor', //锚点
            'undo', //撤销
            'redo', //重做
            'bold', //加粗
            'indent', //首行缩进
            'italic', //斜体
            'underline', //下划线
            'strikethrough', //删除线
            'subscript', //下标
            'fontborder', //字符边框
            'superscript', //上标
            'formatmatch', //格式刷
            'source', //源代码
            'blockquote', //引用
            'pasteplain', //纯文本粘贴模式
            'selectall', //全选
            'preview', //预览
            'horizontal', //分隔线
            'removeformat', //清除格式
            'time', //时间
            'date', //日期
            'unlink', //取消链接
            'insertrow', //前插入行
            'insertcol', //前插入列
            'mergeright', //右合并单元格
            'mergedown', //下合并单元格
            'deleterow', //删除行
            'deletecol', //删除列
            'splittorows', //拆分成行
            'splittocols', //拆分成列
            'splittocells', //完全拆分单元格
            'deletecaption', //删除表格标题
            'inserttitle', //插入标题
            'mergecells', //合并多个单元格
            'deletetable', //删除表格
            'cleardoc', //清空文档
            'insertparagraphbeforetable', //"表格前插入行"
            'insertcode', //代码语言
            'fontfamily', //字体
            'fontsize', //字号
            'paragraph', //段落格式
            'edittable', //表格属性
            'edittd', //单元格属性
            'link', //超链接
            'emotion', //表情
            'spechars', //特殊字符
            'searchreplace', //查询替换
            'help', //帮助
            'justifyleft', //居左对齐
            'justifyright', //居右对齐
            'justifycenter', //居中对齐
            'justifyjustify', //两端对齐
            'forecolor', //字体颜色
            'backcolor', //背景色
            'insertorderedlist', //有序列表
            'insertunorderedlist', //无序列表
            'fullscreen', //全屏
            'directionalityltr', //从左向右输入
            'directionalityrtl', //从右向左输入
            'rowspacingtop', //段前距
            'rowspacingbottom', //段后距
            'pagebreak', //分页
            'imagenone', //默认
            'imageleft', //左浮动
            'imageright', //右浮动
            'attachment', //附件
            'imagecenter', //居中
            'lineheight', //行间距
            'edittip ', //编辑提示
            'customstyle', //自定义标题
            'autotypeset', //自动排版
            'touppercase', //字母大写
            'tolowercase', //字母小写
            'template', //模板
            'scrawl', //涂鸦
            'inserttable', //插入表格
            'drafts', // 从草稿箱加载
            'charts', // 图表
            'insertvideo', //视频
            // 'simpleupload', 单图上传
            'insertimage' //多图上传
        ]
    ]
});

ue.addListener('wordcountoverflow', function () {
    layer.msg("富文本内容过长,系统将自动删除超出字符!", {icon: 5, time: 3000});
    var chars = ue.getContentTxt();
    var schars = chars.substring(0, 10000);
    ue.setContent(schars);
});


UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
UE.Editor.prototype.getActionUrl = function (action) {
    if (action == 'uploadimage' || action == 'uploadvideo' || action == 'uploadfile') {
        return root.sroreinter.ueditor; //在这里返回我们实际的上传图片地址
    } else {
        return this._bkGetActionUrl.call(this, action);
    }
}

/*********************参数校验区****************************/

// 选择图片或视频
function changFile(e) {
    for (var i = 0; i < e.target.files.length; i++) {
        var file = e.target.files.item(i);
        var fileType = file.type;
        if (!(/^image\/.*$/i.test(fileType)) && !(/^video\/.*$/i.test(fileType))) {
            layer.msg('请上传图片图片或视频!', {icon: 5, time: 2000});
            $("#file").val("");
            continue; //不是图片 就跳出这一次循环
        }
        if (!"video/avi" == fileType && "video/mp4" == fileType) {
            layer.msg('视频暂时只支持mp4或avi格式!', {icon: 5, time: 2000});
            $("#file").val("");
            continue;
        }
        // 图片略缩图
        if ((/^image\/.*$/i.test(file.type))) {
            //实例化FileReader API
            var image = new Image();
            var freader = new FileReader();
            freader.readAsDataURL(file);
            freader.onload = function (e) {
                image.src = e.target.result;
                image.onload = function () {
                    if (file.size > 10 * 1024 * 1024) {
                        layer.msg('图片不得大于10M!', {icon: 6, time: 2000});
                        $("#file").val("");
                        return;
                    } else {
                        $("#myImg").css({
                            width: this.width / 5 + "px",
                            height: this.height / 5 + "px",
                            cursor: "pointer"
                        });
                        showImage(e.target.result);
                        //}
                    }
                };
            }
        }
        //视频略缩图
        if ((/^video\/.*$/i.test(file.type))) {
            if (file.size > 100 * 1024 * 1024) {
                layer.msg('视频不得大于100M!', {icon: 6, time: 2000});
                $("#file").val("");
                return;
            }
            var windowURL = window.URL || window.webkitURL;
            var videoURL = windowURL.createObjectURL(file);
            showVideo(videoURL);
        }
    }
}

function showVideo(url) {
    $("#myVideo").attr("src", url);
    $("#myVideo").show();
    $("#myImg").hide();
}

function showImage(url) {
    $("#myImg").attr("src", url);
    $("#myVideo").hide();
    $("#myImg").show();
}

/*校验富文本内容*/
function validateUeditor(formData) {
    var flag = true;
    ue.ready(function () {
        //获取html内容，返回: <p>hello</p>
        var html = ue.getContentTxt();
        if (!html || html.length == 0) {
            layer.msg("富文本内容不能为空!", {icon: 5, time: 3000});
            flag = false;
        }
        if (html.length > 10000) {
            layer.msg("富文本内容过长!", {icon: 5, time: 3000});
            flag = false;
        }
        formData.append("content", ue.getContent());
    });
    return flag;
}

/*校验select内容*/
function validateSelect() {
    var val = $("#release_type").val()
    if (val == 0) {
        layer.msg("请选择发布类型!", {icon: 5, time: 3000});
        return false;
    }
    return true;
}

/***********************方法区***************************/
var fileUrl;
/*编辑 填充表单*/
$(function () {
    if (window.parent.newsId != null) {
        $.ajax({
            url: root.sroreinter.get_newsByid + '/' + window.parent.newsId,
            type: "GET",
            headers: {'Content-Type': 'application/json'},
            success: function (data) {
                if (data) {
                    $("#title").val(data.title);
                    $("#sub_title").val(data.sub_title);
                    $("#release_time").val(data.release_time);
                    $("#release_type").val(data.release_type);
                    $("#file").removeAttr("required");
                    fileUrl = data.url;
                    /*填充富文本内容*/
                    if (data.content) {
                        ue.ready(function () {
                            ue.setContent(data.content);
                        });
                    }
                    /*回显视频或图片内容*/
                    if (data.file_type == 10) {
                        showImage(data.url);
                    } else {
                        showVideo(data.url);
                    }
                }
            }
        });
    }
});

// 表单提交
$("#form-add").validate({
    rules: {
        title: {
            rangelength: [1, 60]
        },
        title2: {
            rangelength: [1, 200]
        }
    },
    //提交表单数据
    submitHandler: function (form) {
        var loader = layer.load(0, {
            shade: [0.8, '#070002'] //0.1透明度的白色背景
        });
        var file = $("#file")[0].files[0];
        var formData = new FormData();

        if (validateSelect()) {
            //校验富文本编辑器内容
            if (validateUeditor(formData)) {
                // 有文件时
                if (file) {
                    // 更新文件路径
                    uploadFile(formData);
                } else if (window.parent.newsId != null && !file) {
                    // 更新操作时未上传文件
                    formData.append("url", fileUrl);
                }
                /*获取登陆信息*/
                var quzhi = JSON.parse(web.readCookie("loginData"))
                formData.append("title", $("#title").val());
                formData.append("sub_title", $("#sub_title").val());
                formData.append("release_time", $('#release_time').val());
                formData.append("release_type", $("#release_type").val());
                /*数据入库*/
                if (window.parent.newsId) {
                    formData.append("id", window.parent.newsId);
                    formData.append("modifier_id", quzhi.user.user_ID);
                    formData.append("modifier_name", quzhi.user.username);
                    updateNews(formData);
                } else {
                    formData.append("creator_name", quzhi.user.username);
                    formData.append("creator_id", quzhi.user.user_ID);
                    addNews(formData);
                }
            }
        }
        setTimeout(function () {
            layer.close(loader);
        }, 3000);
    }
})


/*关闭详情页*/
function removeIframe() {
    var index = parent.layer.getFrameIndex(window.name);
    parent.layer.close(index);
}

/*调用图片上传基础服务*/
function uploadFile(formData) {
    var fileFormData = new FormData();
    var file = $("#file")[0].files[0];
    fileFormData.append("file", file);
    if ((/^image\/.*$/i.test(file.type))) {
        formData.append("file_type", 10);
    } else {
        formData.append("file_type", 20);
    }
    $.ajax({
        url: root.sroreinter.save_slide_picture,
        cache: false,  //禁用缓存
        type: "POST",
        async: false,
        // 告诉jQuery不要去处理发送的数据
        processData: false,
        // 告诉jQuery不要去设置Content-Type请求头
        contentType: false,
        data: fileFormData,
        success: function (data) {
            if (data[0].errorCode == 0) {
                formData.append("url", data[0].fullPath);
            } else {
                layer.close(loader);
                layer.msg("基础服务异常: " + data[0].errorInfo, {icon: 5, time: 3000});
                return;
            }
        }
    });

}

/*新增新闻信息*/
function addNews(formData) {
    $.ajax({
        url: root.sroreinter.add_news,
        cache: false,  //禁用缓存
        type: "POST",
        // 告诉jQuery不要去处理发送的数据
        processData: false,
        // 告诉jQuery不要去设置Content-Type请求头
        contentType: false,
        async: false,
        data: formData,
        success: function (data) {
            if (data.errorCode == 0) {
                layer.msg(data.errorMessage, {icon: 6, time: 3000});
                setTimeout(function () {
                    parent.comPageNum = 1;
                    parent.seahsdfs(1);
                    removeIframe();
                }, 3000);
            } else {
                layer.msg(data.errorMessage, {icon: 5, time: 3000});
            }
        }
    });
}

/*更新新闻信息*/
function updateNews(formData) {
    $.ajax({
        url: root.sroreinter.update_news,
        cache: false,  //禁用缓存
        type: "POST",
        // 告诉jQuery不要去处理发送的数据
        processData: false,
        // 告诉jQuery不要去设置Content-Type请求头
        contentType: false,
        async: false,
        data: formData,
        success: function (data) {
            if (data.errorCode == 0) {
                layer.msg(data.errorMessage, {icon: 6, time: 3000});
                setTimeout(function () {
                    parent.seahsdfs(parent.comPageNum);
                    removeIframe();
                }, 3000);
            } else {
                layer.msg(data.errorMessage, {icon: 5, time: 3000});
            }
        }
    });
}

